package cn.com.platform.entity;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import cn.com.easy.persistence.BaseEntity;

import com.google.common.collect.Lists;

/**
 * 文章分类
 * 
 */
@Entity
@Table(name = "pf_article_cate")
@DynamicInsert
@DynamicUpdate
public class ArticleCateEntity extends BaseEntity {

	/** */
	private static final long serialVersionUID = 3628022278832275697L;

	/** 分类名 */
	private String title;
	/** 上级分类id */
	private Long parentId;
	/** 分类层级 */
	private int level;
	/** 分类排序 */
	private Long orderby;
	/** 是否隐藏 */
	private boolean hidden = false;
	/** 拼音 */
	private String pinyin;

	/** seo描述 */
	@Column(name = "seo_description", length = 255)
	private String seoDescription;
	/** seo关键字 */
	@Column(name = "seo_keywords", length = 255)
	private String seoKeywords;
	/** seo标题 */
	@Column(name = "seo_title", length = 255)
	private String seoTitle;

	/**
	 * 下级分类列表，需要时在设置
	 */
	@Transient
	private List<ArticleCateEntity> childs = Lists.newArrayList();

	/**
	 * get 是否隐藏
	 * 
	 * @return
	 * @author nibili 2016年8月23日
	 */
	public Boolean getHidden() {
		return hidden;
	}

	/**
	 * set 是否隐藏
	 * 
	 * @param hidden
	 * @author nibili 2016年8月23日
	 */
	public void setHidden(Boolean hidden) {
		this.hidden = hidden;
	}

	/**
	 * get 分类层级
	 * 
	 * @return
	 * @auth nibili 2018年7月10日
	 */
	public int getLevel() {
		return level;
	}

	/**
	 * set 分类层级
	 * 
	 * @param level
	 * @auth nibili 2018年7月10日
	 */
	public void setLevel(int level) {
		this.level = level;
	}

	/**
	 * get 分类排序
	 * 
	 * @return
	 * @author nibili 2016年8月23日
	 */
	public Long getOrderby() {
		return orderby;
	}

	/**
	 * set 分类排序
	 * 
	 * @param orderby
	 * @author nibili 2016年8月23日
	 */
	public void setOrderby(Long orderby) {
		this.orderby = orderby;
	}

	/**
	 * get 上级分类id
	 * 
	 * @return
	 * @author nibili 2016年8月23日
	 */
	public Long getParentId() {
		return parentId;
	}

	/**
	 * set 上级分类id
	 * 
	 * @param parentId
	 * @author nibili 2016年8月23日
	 */
	public void setParentId(Long parentId) {
		this.parentId = parentId;
	}

	/**
	 * get seo描述
	 * 
	 * @return
	 * @author nibili 2016年8月23日
	 */
	public String getSeoDescription() {
		return seoDescription;
	}

	/**
	 * set seo描述
	 * 
	 * @param seoDescription
	 * @author nibili 2016年8月23日
	 */
	public void setSeoDescription(String seoDescription) {
		this.seoDescription = seoDescription;
	}

	/**
	 * get seo关键字
	 * 
	 * @return
	 * @author nibili 2016年8月23日
	 */
	public String getSeoKeywords() {
		return seoKeywords;
	}

	/**
	 * set seo关键字
	 * 
	 * @param seoKeywords
	 * @author nibili 2016年8月23日
	 */
	public void setSeoKeywords(String seoKeywords) {
		this.seoKeywords = seoKeywords;
	}

	/**
	 * get seo标题
	 * 
	 * @return
	 * @author nibili 2016年8月23日
	 */
	public String getSeoTitle() {
		return seoTitle;
	}

	/**
	 * set seo标题
	 * 
	 * @param seoTitle
	 * @author nibili 2016年8月23日
	 */
	public void setSeoTitle(String seoTitle) {
		this.seoTitle = seoTitle;
	}

	/**
	 * get 分类名
	 * 
	 * @return
	 * @author nibili 2016年8月23日
	 */
	public String getTitle() {
		return title;
	}

	/**
	 * set 分类名
	 * 
	 * @param title
	 * @author nibili 2016年8月23日
	 */
	public void setTitle(String title) {
		this.title = title;
	}

	/**
	 * get 拼音
	 * 
	 * @return
	 * @author nibili 2016年8月23日
	 */
	public String getPinyin() {
		return pinyin;
	}

	/**
	 * set 拼音
	 * 
	 * @param pinyin
	 * @author nibili 2016年8月23日
	 */
	public void setPinyin(String pinyin) {
		this.pinyin = pinyin;
	}

	/**
	 * get 下级分类列表，需要时在设置
	 * 
	 * @return
	 * @author nibili 2016年8月23日
	 */
	public List<ArticleCateEntity> getChilds() {
		return childs;
	}

	/**
	 * set 下级分类列表，需要时在设置
	 * 
	 * @param childs
	 * @author nibili 2016年8月23日
	 */
	public void setChilds(List<ArticleCateEntity> childs) {
		this.childs = childs;
	}

}